import Fly from 'flyio/dist/npm/wx'

// 初始化
const fly = new Fly()

//设置超时
fly.config.timeout = 30000;
//设置请求基地址
// if(process.env.NODE_ENV === 'development')
fly.config.baseURL = 'https://uniapp.dcloud.io/api';

//添加请求拦截器
fly.interceptors.request.use((config) => {
		// 给所有请求添加自定义header，带上token信息让服务器验证用户登陆
	    let token = uni.getStorageSync('aliToken');
	    config.headers['Authorization'] = token;
	    // 在当前页面显示导航条加载动画
	    uni.showNavigationBarLoading();
		// uni.showLoading({
		//   title: '加载中...', //数据请求前loading，提高用户体验
		//   mask: true
		// })
		return config;
	},
	(error) => {
		return Promise.reject(error)
	}
)

// 响应
fly.interceptors.response.use(
    (response,promise) => {
      if(typeof (response.data)=='string' && response.data!=''){
        response.data=JSON.parse(response.data);
      }
      // uni.hideLoading()
    },
    (err,promise) => {
		// 在当前页面隐藏导航条加载动画
		uni.hideNavigationBarLoading()
		if (err.status === 0) {
			uni.showToast({
				title: '网络请求延时',
				icon: "none",
			});
			return Promise.reject(err);
		}
		let code = err.response.status;
		if (code === 401) {
			uni.navigateTo({
				url: "/pages/mine/login?interceptors=1"
			});
		} else if (code === 403) {
			uni.showToast({
				title: '没有权限',
				icon: "none",
			});
			return Promise.reject(err);
		} else {
			uni.showToast({
				title: err.response.data.message,
				icon: "none",
			});
			return Promise.reject(err);
		}
      // uni.hideLoading()
    }
)

export default fly